package com.sdy.fs.api;

import com.sdy.common.model.FileObj;
import com.sdy.common.model.Response;
import org.springframework.cloud.openfeign.FeignClient;

import java.util.List;

@FeignClient("sdy-fs")
public interface FsApi {
    /**
     * 上传文件
     * @param data 文件数据
     * @param filename 文件名（包含扩展名）
     * @param type 文件分类（请使用英文），用来存放文件的子目录
     * @return 文件url
     */
    @Deprecated
    Response<String> upload(Byte[] data, String filename, String type);
    
    /**
     * 上传文件
     * @param data 文件数据
     * @param filename 文件名（包含扩展名）
     * @param type 文件分类（请使用英文），用来存放文件的子目录
     * @return 文件对象
     */
    FileObj uploadFile(Byte[] data, String filename, String type);

    /**
     * 上传文件
     * @param data 文件数据
     * @param filename 文件名（包含扩展名）
     * @param type 文件分类（请使用英文），用来存放文件的子目录
     * @param auth 如果文件是需要权限校验的，就不为null
     * @return 文件对象
     */
    FileObj uploadFile(Byte[] data, String filename, String type, Integer auth);

    /**
     * 获取文件信息
     * @param fileId 文件id
     * @return 文件信息
     */
    FileObj getFileInfo(String fileId);

    /**
     * 获取文件信息
     * @param fileIdList 文件id
     * @return 文件信息
     */
    List<FileObj> getFileListInfo(List<String> fileIdList);
}
